<?php

include("modelo/Datos.php");
include("modelo/BoletaArea.php");

class Boleta
{
	var $id;
	var $cedula;
	var $nombre;
	var $telefono1;
	var $telefono2;
	var $telefono3;
	var $domicilio;
	var $trabaja;
	var $lugartrabajo;
	var $empresa;
	var $procedencia;
	var $egreso;
	var $adecuacion;
	var $modalidad;
	var $dia;
	var $hora;
	var $areas = array();

	var $tabla = 'boletas';
	
	var $structure = array(
						'id'			=> '0',
						'cedula'		=> '0',
						'nombre'		=> 'nombre',
						'telefono1'		=> '',
						'telefono2'		=> '',
						'telefono3'		=> '',
						'domicilio'		=> '',
						'trabaja'		=> '1',						
						'lugartrabajo'	=> '',
						'empresa'		=> '',
						'procedencia'	=> '',
						'egreso'		=> '2009',
						'adecuacion'	=> '1',
						'modalidad_id'	=> '0'
					);
	
	function index($where=null){

		$datos = new Datos();
		
		$datos->conectar();
		
		$query = "SELECT ";
		
		$query2 = " FROM " . $this->tabla;
		
		foreach($this->structure as $k=>$v){
		
			$query .=  $k . ",";
									
		}
				
		$query = substr($query, 0, strlen($query)-1);
		
		if(!empty($where)){
			
			$query2 .= " WHERE ";
			
			foreach($where as $k=>$v){
			
				$query2 .= $k  . "='" . $v . "' AND";
						
			}
			
			$query2 = substr($query2, 0, strlen($query2)-3);
		}
		
		$query .= $query2 . ";";
		
		//echo $query;
		
		$data = mysql_db_query($datos->database, $query);
		
		$boletas = array();
		
		if(!empty($data))
		{
			while($i = mysql_fetch_array($data)) {
				
				$boleta_area = new BoletaArea();
				
				$areas = $boleta_area->index(array('boleta_id' => $i['id']));
				
				$tmp = array(
							'id'			=> $i['id'],
							'cedula'		=> $i['cedula'],
							'nombre'		=> $i['nombre'],
							'telefono1'		=> $i['telefono1'],
							'telefono2'		=> $i['telefono2'],
							'telefono3'		=> $i['telefono3'],
							'domicilio'		=> $i['domicilio'],
							'trabaja'		=> $i['trabaja'],						
							'lugartrabajo'	=> $i['lugartrabajo'],
							'empresa'		=> $i['empresa'],
							'procedencia'	=> $i['procedencia'],
							'egreso'		=> $i['egreso'],
							'adecuacion'	=> $i['adecuacion'],
							'hora'			=> $i['hora_disponible'],
							'dia'			=> $i['dia_disponible'],
							'modalidad_id'	=> $i['modalidad_id'],
							'areas'			=> $areas
						);
				$boletas[] = $tmp;
	
			}
		}
		
		$datos->desconectar();
		
		return $boletas;		
	}
	/*
	 * 
	 * INSERTAR UNA BOLETA + SUS AREAS ASOCIADAS
	 * 
	 * 
	 */
	function save($boleta, $areas){
		
		$datos = new Datos();
		
		$datos->conectar();
		
		$query = "INSERT INTO ". $this->tabla ."(";
		
		$query2 = " VALUES(";
		
		$coma = count($boleta);
		
		foreach($boleta as $k=>$v){
		
			$query .=  $k . ",";
			
			$query2 .= "'" . $v . "',";
						
		}
		
		$query = substr($query, 0, strlen($query)-1) . ")" . substr($query2, 0, strlen($query2)-1) . ");";

		$status = mysql_query($query);	
		
		$boletaId = mysql_insert_id();
		
		$boleta_area = new BoletaArea();
		
		$boleta_area->save($boletaId, $areas);
		
		/*if($status){
			
			foreach($areas as $a){
				if(isset($a['aplica']) && ($a['aplica']==1)){
					$area = array(
									'boleta_id' => $boletaId,
									'materia_id'=> $a['materia'],
									'cantidad'	=> $a['cantidad']
								);
					
					if(!$this->saveArea($area))
						$status = false;				
				}			
			}
		}*/

		$datos->desconectar();
		
		return $status;
	}
	
	/*function saveArea($area)
	{
		$tablaAreas = 'boletas_areas';
		
		$query = "INSERT INTO ". $tablaAreas ."(";
		
		$query2 = " VALUES(";
		
		$coma = count($area);
		
		foreach($area as $k=>$v){
		
			$query .=  $k . ",";
			
			$query2 .= "'" . $v . "',";
						
		}
		
		$query = substr($query, 0, strlen($query)-1) . ")" . substr($query2, 0, strlen($query2)-1) . ");";

		$status = mysql_query($query);
		
		return $status;		
	}*/
	
	function edit($id, $boleta){
		
		$datos = new Datos();
		
		$datos->conectar();
		
		$query = "UPDATE ". $this->tabla ." SET ";
		
		$coma = count($boletas);
		
		foreach($boleta as $k=>$v){
		
			$query .=  $k . "='" . $v . "',";
						
		}
		
		$query = substr($query, 0, strlen($query)-1) . " WHERE id=" . $id;

		$status = mysql_query($query);	
		
		//$boletaId = mysql_insert_id();
		
		//if($status){
			
			/*
			 * VERIFICAR CUALES SE UNCHECK ?
			 */
			/*foreach($areas as $a){
				if(isset($a['aplica']) && ($a['aplica']==1)){
					$area = array(
									'boleta_id' => $boletaId,
									'materia_id'=> $a['materia'],
									'cantidad'	=> $a['cantidad']
								);
					
					if(!$this->saveArea($area))
						$status = false;				
				}			
			}*/
		//}

		$datos->desconectar();
		
		//echo $query;
		
		return $status;
		
	}
	
	function delete($id){
		
		$status = 0;
		
		$datos = new Datos();
		
		$datos->conectar();
		
		$query = "DELETE FROM ". $this->tabla;
		
		$query .= " WHERE id='" .$id . "'";
		
		//echo $query;
		
		mysql_query($query);
		
		$status = mysql_affected_rows();
		
		$boleta_area = new BoletaArea();
		
		$status += $boleta_area->delete($id);
		
		return ($status > 0);
	}
		
	function valid($estudiante){
		
	}


    /**
     * Returns $areas.
     * @see Boleta::$areas
     */
    public function getAreas()
    {
        return $this->areas;
    }
    
    /**
     * Sets $areas.
     * @param object $areas
     * @see Boleta::$areas
     */
    public function setAreas($areas)
    {
        $this->areas = $areas;
    }
    
    /**
     * Returns $cedula.
     * @see Boleta::$cedula
     */
    public function getCedula()
    {
        return $this->cedula;
    }
    
    /**
     * Sets $cedula.
     * @param object $cedula
     * @see Boleta::$cedula
     */
    public function setCedula($cedula)
    {
        $this->cedula = $cedula;
    }
    
    /**
     * Returns $domicilio.
     * @see Boleta::$domicilio
     */
    public function getDomicilio()
    {
        return $this->domicilio;
    }
    
    /**
     * Sets $domicilio.
     * @param object $domicilio
     * @see Boleta::$domicilio
     */
    public function setDomicilio($domicilio)
    {
        $this->domicilio = $domicilio;
    }
    
    /**
     * Returns $educacion.
     * @see Boleta::$educacion
     */
    public function getEducacion()
    {
        return $this->educacion;
    }
    
    /**
     * Sets $educacion.
     * @param object $educacion
     * @see Boleta::$educacion
     */
    public function setEducacion($educacion)
    {
        $this->educacion = $educacion;
    }
    
    /**
     * Returns $egreso.
     * @see Boleta::$egreso
     */
    public function getEgreso()
    {
        return $this->egreso;
    }
    
    /**
     * Sets $egreso.
     * @param object $egreso
     * @see Boleta::$egreso
     */
    public function setEgreso($egreso)
    {
        $this->egreso = $egreso;
    }
    
    /**
     * Returns $empresa.
     * @see Boleta::$empresa
     */
    public function getEmpresa()
    {
        return $this->empresa;
    }
    
    /**
     * Sets $empresa.
     * @param object $empresa
     * @see Boleta::$empresa
     */
    public function setEmpresa($empresa)
    {
        $this->empresa = $empresa;
    }
    
    /**
     * Returns $id.
     * @see Boleta::$id
     */
    public function getId()
    {
        return $this->id;
    }
    
    /**
     * Sets $id.
     * @param object $id
     * @see Boleta::$id
     */
    public function setId($id)
    {
        $this->id = $id;
    }
    
    /**
     * Returns $lugartrabajo.
     * @see Boleta::$lugartrabajo
     */
    public function getLugartrabajo()
    {
        return $this->lugartrabajo;
    }
    
    /**
     * Sets $lugartrabajo.
     * @param object $lugartrabajo
     * @see Boleta::$lugartrabajo
     */
    public function setLugartrabajo($lugartrabajo)
    {
        $this->lugartrabajo = $lugartrabajo;
    }
    
    /**
     * Returns $modalidad.
     * @see Boleta::$modalidad
     */
    public function getModalidad()
    {
        return $this->modalidad;
    }
    
    /**
     * Sets $modalidad.
     * @param object $modalidad
     * @see Boleta::$modalidad
     */
    public function setModalidad($modalidad)
    {
        $this->modalidad = $modalidad;
    }
    
    /**
     * Returns $nombre.
     * @see Boleta::$nombre
     */
    public function getNombre()
    {
        return $this->nombre;
    }
    
    /**
     * Sets $nombre.
     * @param object $nombre
     * @see Boleta::$nombre
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
    }
    
    /**
     * Returns $procedencia.
     * @see Boleta::$procedencia
     */
    public function getProcedencia()
    {
        return $this->procedencia;
    }
    
    /**
     * Sets $procedencia.
     * @param object $procedencia
     * @see Boleta::$procedencia
     */
    public function setProcedencia($procedencia)
    {
        $this->procedencia = $procedencia;
    }
    
    /**
     * Returns $telefono1.
     * @see Boleta::$telefono1
     */
    public function getTelefono1()
    {
        return $this->telefono1;
    }
    
    /**
     * Sets $telefono1.
     * @param object $telefono1
     * @see Boleta::$telefono1
     */
    public function setTelefono1($telefono1)
    {
        $this->telefono1 = $telefono1;
    }
    
    /**
     * Returns $telefono2.
     * @see Boleta::$telefono2
     */
    public function getTelefono2()
    {
        return $this->telefono2;
    }
    
    /**
     * Sets $telefono2.
     * @param object $telefono2
     * @see Boleta::$telefono2
     */
    public function setTelefono2($telefono2)
    {
        $this->telefono2 = $telefono2;
    }
    
    /**
     * Returns $telefono3.
     * @see Boleta::$telefono3
     */
    public function getTelefono3()
    {
        return $this->telefono3;
    }
    
    /**
     * Sets $telefono3.
     * @param object $telefono3
     * @see Boleta::$telefono3
     */
    public function setTelefono3($telefono3)
    {
        $this->telefono3 = $telefono3;
    }
    
    /**
     * Returns $trabaja.
     * @see Boleta::$trabaja
     */
    public function getTrabaja()
    {
        return $this->trabaja;
    }
    
    /**
     * Sets $trabaja.
     * @param object $trabaja
     * @see Boleta::$trabaja
     */
    public function setTrabaja($trabaja)
    {
        $this->trabaja = $trabaja;
    }

    /**
     * Returns $adecuacion.
     * @see Boleta::$adecuacion
     */
    public function getAdecuacion()
    {
        return $this->adecuacion;
    }
    
    /**
     * Sets $adecuacion.
     * @param object $adecuacion
     * @see Boleta::$adecuacion
     */
    public function setAdecuacion($adecuacion)
    {
        $this->adecuacion = $adecuacion;
    }
    
    /**
     * Returns $structure.
     * @see Boleta::$structure
     */
    public function getStructure()
    {
        return $this->structure;
    }
    
    /**
     * Sets $structure.
     * @param object $structure
     * @see Boleta::$structure
     */
    public function setStructure($structure)
    {
        $this->structure = $structure;
    }
}

?>